﻿using SmartConference.Api.DTO;
using SmartConference.Domain;
using SmartConference.ErrorCode;
using System.ComponentModel;

namespace SmartConference.Api.Applocations.IServices
{
    public interface IUserServices
    {
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<ApiResult<UserLoginDTO>> Login([DefaultValue("admin")] string UserNumber, [DefaultValue("123456")] string UserPassword);
        /// <summary>
        /// 用户列表
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<ApiResult<ApiPaging<UserInfo>>> ShowUser(long? IDNumber, string? MemberLevel, DateTime? CreateTime, DateTime? EndTime, [DefaultValue(1)] int pageIndex, [DefaultValue(10)] int pageSize );
        /// <summary>
        /// 删除用户
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        Task<ApiResult> DeleteUser(long IDNumber);
        /// <summary>
        /// 编辑用户
        /// </summary>
        /// <param name="IDNumber"></param>
        /// <returns></returns>
        Task<ApiResult> UpdateUser(UserUpdateInfoDTO userUpdateInfoDTO);

        Task<List<UserInfo>> ExportUser();
    }
}
